
	function editTab()
	{
		var code, sel, tmp, r;
		var tabs="";
		event.returnValue = false;
		sel =event.srcElement.document.selection.createRange()
		r = event.srcElement.createTextRange();

		switch (event.keyCode)
		{
			case (8)	:
				if (!(sel.getClientRects().length > 1))
				{
					event.returnValue = true;
					return
				}
				code = sel.text;
				tmp = sel.duplicate();
				tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)
				sel.setEndPoint("startToStart", tmp);
				sel.text = sel.text.replace(/^/t/gm, "");
				code = code.replace(/^/t/gm, "").replace(//r/n/g, "/r")
				r.findText(code);
				r.select();
				break
			case (9)	:
				if (sel.getClientRects().length > 1)
				{
					code = sel.text;
					tmp = sel.duplicate();
					tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top);
					sel.setEndPoint("startToStart", tmp);
					sel.text = "/t"+sel.text.replace(//r/n/g, "/r/t")
					code = code.replace(//r/n/g, "/r/t")
					r.findText(code);
					r.select();
				};
				else
				{
					sel.text = "/t";
					sel.select();
				}
				break;
			case (13)	:
				tmp = sel.duplicate();
				tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top);
				tmp.setEndPoint("endToEnd", sel);

				for (var i=0; tmp.text.match(/^[/t]+/g) && i<tmp.text.match(/^[/t]+/g)[0].length; i++)	tabs += "/t";
				sel.text = "/r/n"+tabs;
				sel.select();
				break;
			default		:
				event.returnValue = true
				break;
		};
	}